package com.ljh.myaiagent.demo.invoke;

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;

public class HttpAiInvoke {
    // 替换为您的实际 API Key
    private static final String API_KEY = TestApiKey.API_KEY;

    // 阿里云通义千问 API Endpoint (请确认最新地址)
    private static final String API_URL = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation";

    public static void main(String[] args) {
        // 构建请求参数
        JSONObject input = JSONUtil.createObj()
                .put("messages", JSONUtil.createArray()
                        .put(JSONUtil.createObj()
                                .put("role", "user")
                                .put("content", "你好，你是谁？")
                        )
                );

        JSONObject parameters = JSONUtil.createObj()
                .put("result_format", "message");

        JSONObject requestBody = JSONUtil.createObj()
                .put("model", "qwen-plus") // 可根据需要更换模型
                .put("input", input)
                .put("parameters", parameters);

        try {
            // 使用 Hutool 发送 POST 请求
            HttpResponse response = HttpRequest.post(API_URL)
                    .header("Authorization", "Bearer " + API_KEY)
                    .header("Content-Type", "application/json")
                    .body(requestBody.toString())
                    .timeout(30000) // 设置超时时间，单位毫秒
                    .execute();

            // 检查响应状态
            if (response.isOk()) {
                String result = response.body();
                System.out.println("API 响应结果：");
                System.out.println(result);

                // 解析 JSON 响应（可选）
                JSONObject jsonResponse = JSONUtil.parseObj(result);
                // 例如：提取回复内容
                Object output = jsonResponse.getByPath("output");
                if (output != null) {
                    System.out.println("模型回复: " + output.toString());
                }
            } else {
                System.err.println("请求失败，状态码: " + response.getStatus());
                System.err.println("响应内容: " + response.body());
            }
        } catch (Exception e) {
            System.err.println("请求过程中发生异常: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
